package cn.csc.module.shop.convert.detail;

import cn.csc.framework.common.pojo.PageResult;
import cn.csc.module.shop.api.detail.dto.ShopDetailRelateReqDTO;
import cn.csc.module.shop.api.detail.dto.ShopDetailRespDTO;
import cn.csc.module.shop.controller.admin.detail.vo.ShopDetailCreateReqVO;
import cn.csc.module.shop.controller.admin.detail.vo.ShopDetailExcelVO;
import cn.csc.module.shop.controller.admin.detail.vo.ShopDetailRespVO;
import cn.csc.module.shop.controller.admin.detail.vo.ShopDetailUpdateReqVO;
import cn.csc.module.shop.controller.app.detail.vo.AppShopDetailByShopIdsRespVO;
import cn.csc.module.shop.controller.app.detail.vo.AppShopDetailCreateReqVO;
import cn.csc.module.shop.controller.app.detail.vo.AppShopDetailSimpleRespVO;
import cn.csc.module.shop.dal.dataobject.detail.ShopDetailDO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;

import java.util.List;

/**
 * 店铺详情 Convert
 *
 * @author liuchuang
 */
@Mapper
public interface ShopDetailConvert {

    ShopDetailConvert INSTANCE = Mappers.getMapper(ShopDetailConvert.class);

    ShopDetailDO convert(ShopDetailCreateReqVO bean);

    ShopDetailDO convert(AppShopDetailCreateReqVO bean);

    ShopDetailDO convert(ShopDetailRelateReqDTO bean);

    ShopDetailDO convert(ShopDetailUpdateReqVO bean);

    ShopDetailRespVO convert(ShopDetailDO bean);

    ShopDetailRespDTO convert2(ShopDetailDO bean);

    AppShopDetailSimpleRespVO convert3(ShopDetailDO bean);

    List<ShopDetailRespVO> convertList(List<ShopDetailDO> list);

    List<AppShopDetailByShopIdsRespVO> convertList2(List<ShopDetailDO> list);

    PageResult<ShopDetailRespVO> convertPage(PageResult<ShopDetailDO> page);

    List<ShopDetailExcelVO> convertList02(List<ShopDetailDO> list);

    List<ShopDetailRespDTO> convertList03(List<ShopDetailDO> list);

    ShopDetailExcelVO map(ShopDetailDO value);

}
